PICH Lab v0.14.0 — an experimental local audio analysis tool

App source is provided in this folder under AGPL-3.0-or-later (see LICENSE).
No analysis-engine build or package installation is required. The optional
FL Studio adapter needs its included controller installed and MIDI ports paired. The JavaScript files are the
editable application source, and serve.py is a Python standard-library server.

Bundled analysis engine: Essentia.js 0.1.3, AGPL-3.0.
Copyright Music Technology Group, Universitat Pompeu Fabra, and contributors.
See vendor/AUTHORS.md and the original copyright notices in the bundled files.
Vendor files are unchanged copies from the essentia.js 0.1.3 npm distribution:
  essentia-wasm.js: dist/essentia-wasm.umd.js
  essentia-core.js: dist/essentia.js-core.umd.js
Package: https://www.npmjs.com/package/essentia.js/v/0.1.3
Source and build instructions: https://github.com/MTG/essentia.js/tree/v0.1.3
Underlying Essentia source: https://github.com/MTG/essentia
Algorithm documentation: https://essentia.upf.edu/algorithms_reference.html

Demo audio is generated by demo.js from oscillators and deterministic noise.
It contains no third-party recording or sample.

Antares, Auto-Key, Auto-Tune, Universal Audio, Console, and Real-Time X are
names of their respective owners. This app is not affiliated with them.
Key files contain Key and Scale only. Send to Console uses the local UA Mixer Engine
connection to set only Key and Scale on the selected Real-Time X insert.
The connection is unofficial, and has no vendor support guarantee.
Protocol documentation consulted (independent implementation):
https://github.com/fomoPhil/uad-console-mcp/blob/main/docs/PROTOCOL.md
No third-party bridge implementation code is bundled.

Send to Auto-Tune independently implements the local macOS key/scale handoff
observed in an installed Artist 9.2.0 receiver. No Antares code,
binaries, assets, or disassembly are distributed with this app. It is an
unofficial experimental connection, broadcasts to listening instances, and
has no delivery acknowledgment or support guarantee. Artist in FL Studio was live-tested; Real-Time X in Console also received
that broadcast. Other vendor Auto-Key-compatible products are candidates.

The targeted FL Studio connection is original code using Image-Line's public
MIDI scripting API and Apple's CoreMIDI framework. It writes only the selected
Artist slot's Key and Scale parameters. Source is included in fl-studio/ and
fl_bridge.py. Live validation status is documented in TEST-RESULTS.html.
The bundled helper targets Apple silicon. Rebuild on a supported Mac with:
  xcrun clang fl-studio/midi_link.c -o fl-studio/midi_link -framework CoreMIDI -framework CoreFoundation -Wno-deprecated-declarations
API reference: https://www.image-line.com/fl-studio-learning/fl-studio-online-manual/html/midi_scripting.htm

The REAPER connection is original Lua/Python code using Cockos public ReaScript
APIs. It discovers top-level track/master FX in the active project and changes
only the chosen effect's Key and Scale, with readback and conditional Undo.
Source is in reaper/ and reaper_bridge.py. No REAPER application, SDK binary,
third-party plug-in, or software license is distributed in this folder.
API reference: https://www.reaper.fm/sdk/reascript/reascripthelp.html
Live validation and the Real-Time X editor limitation: TEST-RESULTS.html.

The Ableton preview is original Python code in ableton/PICH_Key_Lab and
ableton_bridge.py. It uses Live's control-surface loading mechanism and its
host object model; it does not bundle Ableton, its framework, Max for Live,
or any plug-in. No decompiled vendor code is included. The control-surface
host interface may change; TEST-RESULTS.html lists the live-validated versions and formats.
Official references:
https://help.ableton.com/hc/en-us/articles/209072009-Installing-third-party-remote-scripts
https://docs.cycling74.com/apiref/lom/deviceparameter/

The Pro Tools connection is original Python/C code in protools/ and
protools_bridge.py. It combines Apple's CoreMIDI HUI connection with a native
Pro Tools PTSL batch lock, selected-track/insert checks and conditional Undo.
Only the locally evaluated Real-Time X AAX profile is enabled. See SETUP.html
inside protools/ and PRO-TOOLS-VALIDATION.html for restrictions and evidence.
No Avid SDK source, generated SDK bindings, SDK dependencies, Pro Tools binary,
AAX plug-in or vendor license is included in this app folder. This Mac loads
its separately obtained SDK using a private local configuration.
The bundled MIDI helper targets Apple silicon. Rebuild on a supported Mac:
  xcrun clang protools/hui_link.c -o protools/hui_link -framework CoreMIDI -framework CoreFoundation
References consulted:
https://developer.avid.com/scripting/
https://learn-cdn.avid.com/AAX_SDK_2p1p1/Documentation/Doxygen/output/html/a00276.html
https://forum.bome.com/uploads/short-url/aX7AWqj6FpgMiEMQi0kACDDTSSi.pdf
